! function(doc, win) {
    win.onload = function() {
        if ('imconfig_touch' in win) {
            var ele = doc.getElementById('el');
            var el = new win['imconfig_touch'](ele);
        }
        var body = doc.body;
        body.addEventListener('touchstart', forbid, false);
        body.addEventListener('touchmove', forbid, false);
        body.addEventListener('touchend', forbid, false);
        function forbid(e){
            e.stopPropagation();
            e.preventDefault();
        }
    };
}(document, window);

(function(doc, win) {
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function() {
            var clientWidth = docEl.clientWidth;
            if (!clientWidth) return;
            docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
        };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);